/**
 * 
 */
package com.desksoft.ecommerce.service.interf.logistics;

import com.desksoft.ecommerce.util.result.ServiceResult;
import com.desksoft.utility.service.ServiceInterface;

/***************************************
 * <pre>
 * 版权所有：杭州迪科软件 保留所有权利
 * 创建日期: Oct 26, 2011 3:54:02 PM
 * 创建作者：yejw
 * 文件名称：IBillServiceBase.java
 * 版本：1.0
 * 功能：
 * 最后修改时间：Oct 26, 2011 3:54:02 PM
 * 修改记录：
 * </pre>
 *****************************************/
public interface IBillServiceBase extends ServiceInterface {
	
	/**
	 * 单据新增
	 * 
	 * @param <T>
	 * @param bill
	 * @return
	 */
	public <T> ServiceResult<?> addBill(T bill);

	/**
	 * 单据保存
	 * 
	 * @param <T>
	 * @param bill
	 * @return
	 */
	public <T> ServiceResult<?> saveBill(T bill);
	
	/**
	 * 单据确认
	 * 
	 * @param <T>
	 * @param bill
	 * @return
	 */
	public <T> ServiceResult<?> confirmBill(T bill);
	
	/**
	 * 单据作废
	 * 
	 * @param <T>
	 * @param bill
	 * @return
	 */
	public <T> ServiceResult<?> cancelBill(T bill);
	
	/**
	 * 单据底部查询
	 * 
	 * @param <T>
	 * @param param
	 * @return
	 */
	public <T> ServiceResult<?> query(T param);
	
	/**
	 * 新增单据明细
	 * 
	 * @param <T>
	 * @param row
	 * @return
	 */
	public <T> ServiceResult<?> addRow(T row);
	
	/**
	 * 插入单据明细
	 * 
	 * @param <T>
	 * @param row
	 * @return
	 */
	public <T> ServiceResult<?> insertRow(T row);
	
	/**
	 * 修改单据明细
	 * 
	 * @param <T>
	 * @param row
	 * @return
	 */
	public <T> ServiceResult<?> modifyRow(T row);
	
	/**
	 * 删除单据明细
	 * 
	 * @param <T>
	 * @param row
	 * @return
	 */
	public <T> ServiceResult<?> deleteRow(T row);
	
}
